Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release/0.30.0 #1208

Open
wants to merge 47 commits into
base: master
Choose a base branch
from
Open

release/0.30.0 #1208

wants to merge 47 commits into from

Conversation

thescientist13
Copy link
Member

@thescientist13 thescientist13 commented Mar 9, 2024

Related Issues

Summary of Changes

  1. Rollup v3 Upgrade
  2. Isolation Mode (v1)
  3. Lit v3 + SSR enhancements and fixes
  4. Single File Bundles (SFBs) for SSR and API routes
  5. Import Attributes for CSS and JSON modules (breaking)
  6. Asset bundling in CSS files
  7. Layouts and Pages
    • Templates dir -> renamed to layouts
    • TypeScript now supported for pages
    • Custom elements now supported
  8. Sitemap Support (static)
  9. Frontmatter Imports Attributes
  10. Development time CSS optimization (workflow parity)
  11. Configuration for opt-in import map / attributes polyfills configuration
  12. Content As Data enhancements
  13. CSS Modules ™️ plugin
  14. Latest WCC w/ HTML Web Components support

Alpha Release Test Plan

I think to be safe given the level of refactoring, would like to at least make sure this get tested with a few key repos

The plan would be to test against the following projects / workflows as alpha releases are iterated upon:

  1. www.greenwoodjs.dev - chore/upgrade greenwood v0.30.0 alpha.7 www.greenwoodjs.dev#107
  2. greenwood-demo-adapter-vercel - chore/upgrade greenwood v0.30.0 greenwood-demo-adapter-vercel#22
  3. greenwood-demo-adapter-netlify - chore/upgrade greenwood v0.30.0 greenwood-demo-adapter-netlify#20
  4. thegreenhouse.io - chore/upgrade greenwood v0.30.0 thegreenhouseio/www.thegreenhouse.io#296
  5. contributary.community - chore/upgrade greenwood v0.30.0 ContributaryCommunity/www.contributary.community#125
  6. analogstudios.net - chore/upgrade greenwood v0.30.0 AnalogStudiosRI/www.analogstudios.net#98
  7. tuesdaystunes.tv
  8. greenwood-getting-started - chore/upgrade greenwood v0.30.0 greenwood-getting-started#83
  9. projectevergreen.github.io - chore/upgrade greenwood v0.30.0 projectevergreen.github.io#101
  10. greenwood-template-blog - chore/upgrade greenwood v0.30.0 greenwood-template-blog#12
  11. greenwood-starter-presentation - chore/upgrade greenwood v0.30.0 thescientist13/greenwood-starter-presentation#71
  12. greenwood-demo-github-pages - chore/upgrade greenwood v0.30.0 greenwood-demo-github-pages#5
  13. greenwood-lit-ssr
  14. greenwood-htmx - chore/upgrade greenwood v0.30.0 thescientist13/greenwood-htmx#16
  15. https://github.com/ProjectEvergreen/greenwood-demo-adapter-cloudflare
  16. https://github.com/ProjectEvergreen/greenwood-demo-platform-docker
  17. npx / init
  18. Stackblitz

This PR should NOT be squashed merged when merging into master.

TODOs

  1. Layouts (Templates) and Pages #955
  2. import attributes for standard module formats; CSS and JSON  #923
  3. Content as Data #1167
  4. Rendering Strategies (prerender vs SSR vs CSR) #951 - Deferred to new website
  5. support bundling of url properties (like for @font-face + src) during CSS file optimization #1199
  6. HTML Modules plugin (experimental) #1221 - Deferred
  7. support all CSS function pseudo classes / elements for CSS optimizing #1178
  8. CSS Modules ™️ plugin #1233
  9. improve init package scaffolding baseline starting point #1253
  10. enhancement/issue 923 real production import attributes #1259
  11. feature/issue 1257 CSS optimization workflow parity #1258
  12. expand (no-op) support of DOM shim for DOM traversal methods wcc#37 (TBD) -
  13. Upgrade to Node 20.x (latest LTS) #1202 (TBD) - Deferred
  14. move import maps shim to polyfills plugin #1114 (TBD) - Deferred
  15. add support for (progressive) hydration for compatible renderers (globalThis for state?) #880 (nice to have) - Deferred
  16. Server side routes should support dynamic route naming (with prerendering) #882 (nice to have) - Deferred
  17. AWS Adapter plugin #1142 (nice to have) - Deferred
  18. Rebases and backports
  19. review getting started docs
  20. Blog Post - v0.30.0 release blog post www.greenwoodjs.dev#103

Questions / New Issues

N / A

@thescientist13 thescientist13 added enhancement Improve something existing (e.g. no docs, new APIs, etc) Plugins Greenwood Plugins CLI labels Mar 9, 2024
@thescientist13 thescientist13 self-assigned this Mar 9, 2024
@thescientist13 thescientist13 linked an issue Mar 9, 2024 that may be closed by this pull request
@thescientist13 thescientist13 added breaking website Tasks related to the projects website / documentation documentation Greenwood specific docs SSR labels Mar 10, 2024
@thescientist13 thescientist13 added the bug Something isn't working label Mar 10, 2024
@thescientist13 thescientist13 mentioned this pull request May 26, 2024
thescientist13 and others added 14 commits May 31, 2024 16:38
* Issue-1087: Initial upgrade of Rollup and @rollup plugins

* Issue-1087: Upgrade plugin dependencies

* upgrade all test cases with new hash matchers

* update all plugin rollup deps and breaking change updates

* fix duplicate imports of eve-container custom element definition

---------

Co-authored-by: Owen Buckley <[email protected]>
* isolation mode for SSR pages and API routes for greenwood serve

* documentation for isolation mode option and global config test case

* misc refactoring

* set isolation mode to true for Lit renderer plugin

* set isolation mode to true for Lit renderer plugin
* initial upgrade for test cases

* upgrade CLI and www to Lit v3

* revert static router test case change

* all tests passing

* patch escodegen for better ESM support

* test for lit element hydration script

* refactor rollup config

* update Lit renderer README and apply conditional Lit script hydration

* comments and TODOs cleanup

* minor rebase patches

* WCC v0.12.0 upgrade and removing patches directory

* hydration default documentation and testing for Lit renderer plugin
…1186)

* Issue-1118: Refactor rollup config generation for APIs

* Issue-1118: Refactor rollup config generation for SSR

* Issue-1118: Refactor forEach to use for-in for the ssr config generation

* Issue-1118: Convert forEach to for..in

* Issue-1118: Remove unused code

* refactor away bundling work arounds and add comments

* refactor SSR page bundling to avoid hacky entry point placeholder hack

* patch custom element registry check from wcc

* refactor SSR page output name from .entry to .route

* document breaking changes for adapter plugins

* refactor import meta relative asset path escaping

* refactor API routes and adapters for mapped API bundles

* misc refactoring and docs update

* latest WCC patches

* windows compatibility

* update adapter docs example

* remove patches

---------

Co-authored-by: Owen Buckley <[email protected]>
* naive work around for missing chunks of route chunk

* fix linting

* namespace SSR page route entry points and route chunks
* intial draft of import attributes support for CSS and JSON

* all test cases passing

* need patch package

* wcc patches for import attributes and CSSStylesheet shim

* bump min NodeJS version for exp specs

* temp disable ESLint

* develop based import assertion specs

* serve based import attributes specs

* add preIntercept resource plugin lifecycle and refactor PostCSS to use it

* all test cases passing for import attributes support

* refactor built in CSS and JSON intercepting

* demo code

* raw plugin docs and package.json updates

* update latest documentation for custom loaders support in NodeJS

* update custom import docs

* upgrade wcc v0.13.0

* only need Node 18 for github actions

* css imports and raw plugin interop with test cases

* lit renderer import attribute test cases and documentation

* refactor matchers support for raw plugin instead of patching and add test cases

* disable describe.only

* update usage for custom resource plugins to showcase usage of import attributes

* document preIntercept lifecycle and convert Babel to use it

* restore ESLint

* enable debug logging for failing specs

* refactor theme pack specs

* fix linting

* remove CSS and JSON packages from being publishable

* clean up console logs and comments

* rename exp test cases to loadersnaming prefix

* fix command in github actions

* remove plugin-import-css callout from plugin-postcss README

* remove demo code from website

* refine PostCSS plugin intercepting
* bundling of URL referenced assets in CSS files

* add test cases for CSS url reference bundling

* normalize file paths for windows

* base path support

* hashing of bundled CSS filenames

* document CSS bundling behaviors

* filename hashing

* refactoring and console log cleanup
…1236)

* rebase and refactor nested SSR pages work

* clean up console logs

* windows path handling

* better windows pathname support when syncing SSR pages
@thescientist13 thescientist13 force-pushed the release/0.30.0 branch 2 times, most recently from 8da5860 to a901210 Compare June 29, 2024 20:29
* WIP real production import attributes

* restore all test cases to passing

* all test cases and website building correctly

* rollup resolveId refactoring

* rename rollup configs to be more explicit

* refine test cases

* clean up console logs and TODOs

* add import attributes to the docs

* handle base path for bundled import attributes references
* supporting attributes from frontmatter imports

* docs

* clean up console logs

* quote formatting test case
* initial implementation

* WIP updating test cases

* refresh PostCSS plugin README docs

* document optimization in development behavior

* restore test case with exception

* tests passing

* gate font plugin from only serving files

* optimize supported one-off externalized assets

* restore disabled test cases

* fixup comments
* WIP landing page with spinning logo

* flesh out cards conent

* comment out fonts

* use SVG logo

* restore (broken) fonts

* windy leaf animation

* fix leaf logo

* add links

* responsive and misc styling tweaks

* correctly align logo

* update test case for basic content checks

* ESLint ignore init template contents

* downgrade usage of import attributes

* fix typo

* add xmlns to SVG
…1269)

* import map polyfill config flag

* import attributes polyfill config option

* import attributes demo

* develop test cases for import maps and attributes for development

* import attributes polyfill config serve test cases

* polyfills configuration error test cases

* bundle polyfilled import attributes for the browser

* polyfills configuration docs and import attributes call outs

* misc refactoring

* add acorn-import-attributes as a CLI dependency

* refine pre-intercepting logic to include all JS resource types

* remove demo code

* more robust bundling and serve test case
* optimize graphql server for production builds

* fix linting

* tweak coverage thresholds
…1265)

* support multiple custom page formats at once

* add test cases for custom API routes page format
…1280)

* add optional project name flag to init scaffolding

* update init documentation to promote my-app option

* produce a .npmrc file for npm projects

* improve next step console logs

* clean up errant characters

* add npm run dev script to init package.json

* fix linting
* upgrade to css-tree 3.0.0

* update comment

* nesting selector CSS optimization support

* cleanup
* initial implementation of content collections with rich frontmatter support

* add test cases for collections and prerendering

* rename interpolateFrontmatter to activeFrontmatter

* refactor id and lable graph properties

* refactor graph title behavior

* full graph and graphql plugin refactoring

* update website for new graph refactoring

* make sure active frontmatter is enabled for title substition

* restore header nav ordering

* comment cleanup

* eslint ignore

* support multiple import maps

* add id to graph and refactor usage

* refactoring pagePath to pageHref

* update test cases

* rename data/queries.js to client.js

* handle default title from graph and provide default graph content as data in layouts

* handle default title from graph and provide default graph content as data in layouts

* refactor content as data handling to its own plugin

* refactor for better windows interop

* misc refactoring for active frontmatter

* refactor outputPath to outputHref

* add labels for custom side nav output

* refresh content as data and GraphQL docs

* update for new docs redirects

* filter hidden files and improve unsupported page format detection message

* opt-on content as data config and misc refactoring and TODOs

* rename test case

* update docs for content as data config option and patterns

* conslidate content as data into dev server

* misc refactoring

* content as data import map test cases

* fix selectors in test cases

* rename test cases

* consolidate configuration options and update docs

* rename test cases
* initial port from website repo

* build and prerender test case

* build and develop test cases

* README and website documentation

* only patch JSDOM within test setup blocks

* handle module types for scripts

* support any custom identifier

* update test case label

* testing for nested CSS module

* better path detection handling

* additional nested and recursive test cases

* clean up and final testing

* misc refactoring

* basic TS support and caveats for other formats
* patch support for HTML web components with test case

* fix linting

* latest WCC patching

* latest WCC patches

* HTML web components test case

* bump to official WCC v0.15.0
@thescientist13 thescientist13 marked this pull request as ready for review October 20, 2024 01:24
@thescientist13 thescientist13 added RFC Proposal and changes to workflows, architecture, APIs, etc feature New feature or request Init labels Oct 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment